﻿#Region "IMPORTS"
Imports DAO
#End Region

Public Class Funcionario
    Inherits Modelo
    Implements IModelo

#Region "ATRIBUTOS"

    Private _funcionarioId As Integer

    Private _nome As String

    Private _cpf As String

    Private _rg As String

    Private _ctps As String

    Private _telefone As String

    Private _celular As String

    Private _email As String

    Private _dataNascimento As DateTime

    Private _dataDemissao As DateTime

    Private _dataAdmissao As DateTime

    Private _logradouro As String

    Private _salario As Double

    Private _numero As String

    Private _cep As String

    Private _bairro As String

    Private _complemento As String

    Private _cidade As Cidade

    Private _cargo As Cargo

#End Region

#Region "CONSTRUTOR(S)"

    Public Sub New()
        MyBase.New()
    End Sub

    Public Sub New(ByVal id As Integer)
        MyBase.New()
        Me._funcionarioId = id
    End Sub

#End Region

#Region "PROPRIEDADES"

    Public Property Bairro() As String
        Get
            Return _bairro
        End Get
        Set(ByVal value As String)
            _bairro = value
        End Set
    End Property
    Public Property Cargo() As Cargo
        Get
            Return _cargo
        End Get
        Set(ByVal value As Cargo)
            _cargo = value
        End Set
    End Property
    Public Property Celular() As String
        Get
            Return _celular
        End Get
        Set(ByVal value As String)
            _celular = value
        End Set
    End Property
    Public Property Cep() As String
        Get
            Return _cep
        End Get
        Set(ByVal value As String)
            _cep = value
        End Set
    End Property
    Public Property Cidade() As Cidade
        Get
            Return _cidade
        End Get
        Set(ByVal value As Cidade)
            _cidade = value
        End Set
    End Property
    Public Property Complemento() As String
        Get
            Return _complemento
        End Get
        Set(ByVal value As String)
            _complemento = value
        End Set
    End Property
    Public Property Cpf() As String
        Get
            Return _cpf
        End Get
        Set(ByVal value As String)
            _cpf = value
        End Set
    End Property
    Public Property Ctps() As String
        Get
            Return _ctps
        End Get
        Set(ByVal value As String)
            _ctps = value
        End Set
    End Property
    Public Property DataAdmissao() As DateTime
        Get
            Return _dataAdmissao
        End Get
        Set(ByVal value As DateTime)
            _dataAdmissao = value
        End Set
    End Property
    Public Property DataDemissao() As DateTime
        Get
            Return _dataDemissao
        End Get
        Set(ByVal value As DateTime)
            _dataDemissao = value
        End Set
    End Property
    Public Property DataNascimento() As DateTime
        Get
            Return _dataNascimento
        End Get
        Set(ByVal value As DateTime)
            _dataNascimento = value
        End Set
    End Property
    Public Property Email() As String
        Get
            Return _email
        End Get
        Set(ByVal value As String)
            _email = value
        End Set
    End Property
    Public Overridable Property FuncionarioId() As Integer
        Get
            Return Me._funcionarioId
        End Get
        Set(ByVal value As Integer)
            _funcionarioId = value
        End Set
    End Property

    Public Property Logradouro() As String
        Get
            Return _logradouro
        End Get
        Set(ByVal value As String)
            _logradouro = value
        End Set
    End Property
    Public Overridable Property Nome() As String
        Get
            Return Me._nome
        End Get
        Set(ByVal value As String)
            Me._nome = value
        End Set
    End Property
    Public Property Numero() As String
        Get
            Return _numero
        End Get
        Set(ByVal value As String)
            _numero = value
        End Set
    End Property
    Public Property Rg() As String
        Get
            Return _rg
        End Get
        Set(ByVal value As String)
            _rg = value
        End Set
    End Property
    Public Property Salario() As Double
        Get
            Return _salario
        End Get
        Set(ByVal value As Double)
            _salario = value
        End Set
    End Property
    Public Property Telefone() As String
        Get
            Return _telefone
        End Get
        Set(ByVal value As String)
            _telefone = value
        End Set
    End Property

#End Region

#Region "METODOS OVERRIDES"

    Public Overrides Function ToString() As String
        Return Me.Nome
    End Function
#End Region
End Class
